home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1999 March / EnigmA AMIGA RUN 35 (1999)(G.R. Edizioni)(IT)[!][issue 1999-03].iso / earcd / -archivi / -recent2 / gameselect.lha / GameSelect / Setup < prev    next >
Text File  |  1999-03-07  |  18KB  |  566 lines

  1. ;
  2. ; $VER:GameSelect Install.Script 1.1 (2.3.1999)
  3. ;
  4. ;  is GameSelect Install.Script 1.1 (2.3.1999)
  5. ; for GameSelect (>=1.3)
  6. ; (c) ACone SiTe
  7. ;
  8.  
  9. (set GLB_LANGNOTSET true)
  10.  
  11. ;
  12. ; german variables
  13. ;
  14. (if (= @language "deutsch") (
  15.     (set GLB_LANGNOTSET false)
  16.     (set
  17.         MSG_WRONGSYSVERSION (cat
  18.             "%s ist erst ab Kickstart %s lauffähig,\n"
  19.             "aber ihr System hat nur Kickstart %s.\n"
  20.         )
  21.         MSG_INSTALL         "Installation"
  22.         MSG_CONFIG          "Konfiguration"
  23.         MSG_DESTALL         "Destallation"
  24.         MSG_QUIT            "Verlassen"
  25.         MSG_WICHWAY         "Wählen Sie eine Aktion aus"
  26.         MSG_WICHWAYHELP     (cat
  27.             "\n"
  28.             "Installation\n"
  29.             "Das Programm wird in einem anderen Verzeichnis installiert.\n"
  30.             "\n"
  31.             "Konfiguration\n"
  32.             "Das Programm konfigurieren.\n"
  33.             "\n"
  34.             "Destallation\n"
  35.             "Die vom Programm in systemspezifischen Verzeichnissen angelegten Dateien "
  36.             "werden gelöscht. Wenn Sie dann das Programmverzeichnis löschen ist das "
  37.             "Programm komplett vom Datenträger entfernt\n"
  38.             "\n"
  39.             "Verlassen\n"
  40.             "Keine der obigen Aktionen ausführen.\n"
  41.             "\n"
  42.         )
  43.         MSG_WHICHDEST (cat
  44.             "Wählen Sie das Zielverzeichnis wohin %s installiert werden soll. "
  45.             "Das Programmverzeichnis wird vom Installationsskript selbstständig angelegt."
  46.         )
  47.         MSG_WHICHDESTHELP (cat
  48.             "\n"
  49.             "Installationsstruktur:\n"
  50.             "\n"
  51.             "ausgewähltes Zielverzeichnis\n"
  52.             "   %s\n"
  53.             "       programmspezifische Verzeichnisse\n"
  54.             "       programmspezifische Dateien\n"
  55.         )
  56.         MSG_ENVVARS (cat
  57.         ;Zu StartControl
  58.             "Soll der Joystick im "
  59.             "Mouseport beim starten unterstützt werden ?$"
  60.         ;Zu ScanPath
  61.             "In welchem Verzeichnis befinden sich die "
  62.             "Spiele/Demos etc. ?$"
  63.         ;Zu LastMsgDelay
  64.             "In einer Statuszeile werden alle mögliche Dinge angezeigt. "
  65.             "Wieviel Sekunden soll die Letzte Nachricht eingeblendet bleiben ?$"
  66.         ;Zu BorderSize
  67.             "Wie groß soll der Anstand in Bildpunkten zwischen den einzelnen "
  68.             "Aktionselementen sein ?$"
  69.         ;Zu HeightAdd
  70.             "Um wieviel Bildpunkte soll ein Aktionsknopf vergrößert werden in der "
  71.             "Höhe ?$"
  72.         ;Zu ButtonWidth
  73.             "Wie breit sollen die Aktionsknöpfe sein (in Bildpunkten) ?$"
  74.         ;Zu ShowWarnings
  75.             "Sollen Warnungen ausgegeben werden ?$"
  76.         ;Zu PlayMusic
  77.             "Soll Musik im Hintergrund gespielt werden während der "
  78.             "Auswahl und der Vorschau ?$"
  79.         ;zu files in Prefs
  80.             "In Welchem Verzeichnis befinden sich die Musikmodule ? $"
  81.         ;zu MusicPath
  82.             "$"
  83.         ;Zu ShowPlayTime
  84.             "Soll die Abspieldauer der Musikmodule angezeigt werden ? "
  85.             "Es gibt einige Module wodurch mit dieser Option das System "
  86.             "hängen bleibt.$"
  87.         )
  88.         MSG_NOVIEWER "Wählen Sie ein geeignetes Programm aus, das Amigaguides anzeigen kann."
  89.         MSG_NOVIEWERABORT "%s konnte nicht gefunden werden"
  90.     )
  91. ))
  92.  
  93. ;
  94. ; default sets
  95. ;
  96. (if GLB_LANGNOTSET (
  97.     (set
  98.         MSG_WRONGSYSVERSION (cat
  99.             "%s ist erst ab Kickstart %s lauffähig,\n"
  100.             "aber ihr System hat nur Kickstart %s.\n"
  101.         )
  102.         MSG_INSTALL         "Installation"
  103.         MSG_CONFIG          "Konfiguration"
  104.         MSG_DESTALL         "Destallation"
  105.         MSG_QUIT            "Verlassen"
  106.         MSG_WICHWAY         "Wählen Sie eine Aktion aus"
  107.         MSG_WICHWAYHELP     (cat
  108.             "\n"
  109.             "Installation\n"
  110.             "Das Programm wird in einem anderen Verzeichnis installiert.\n"
  111.             "\n"
  112.             "Konfiguration\n"
  113.             "Das Programm konfigurieren.\n"
  114.             "\n"
  115.             "Destallation\n"
  116.             "Die vom Programm in systemspezifischen Verzeichnissen angelegten Dateien "
  117.             "werden gelöscht. Wenn Sie dann das Programmverzeichnis löschen ist das "
  118.             "Programm komplett vom Datenträger entfernt\n"
  119.             "\n"
  120.             "Verlassen\n"
  121.             "Keine der obigen Aktionen ausführen.\n"
  122.             "\n"
  123.         )
  124.         MSG_WHICHDEST (cat
  125.             "Wählen Sie das Zielverzeichnis wohin %s installiert werden soll. "
  126.             "Das Programmverzeichnis wird vom Installationsskript selbstständig angelegt."
  127.         )
  128.         MSG_WHICHDESTHELP (cat
  129.             "\n"
  130.             "Installationsstruktur:\n"
  131.             "\n"
  132.             "ausgewähltes Zielverzeichnis\n"
  133.             "   %s\n"
  134.             "       programmspezifische Verzeichnisse\n"
  135.             "       programmspezifische Dateien\n"
  136.         )
  137.         MSG_ENVVARS (cat
  138.         ;Zu StartControl
  139.             "Soll der Joystick im "
  140.             "Mouseport beim starten unterstützt werden ?$"
  141.         ;Zu ScanPath
  142.             "In welchem Verzeichnis befinden sich die "
  143.             "Spiele/Demos etc. ?$"
  144.         ;Zu LastMsgDelay
  145.             "In einer Statuszeile werden alle mögliche Dinge angezeigt. "
  146.             "Wieviel Sekunden soll die Letzte Nachricht eingeblendet bleiben ?$"
  147.         ;Zu BorderSize
  148.             "Wie groß soll der Anstand in Bildpunkten zwischen den einzelnen "
  149.             "Aktionselementen sein ?$"
  150.         ;Zu HeightAdd
  151.             "Um wieviel Bildpunkte soll ein Aktionsknopf vergrößert werden in der "
  152.             "Höhe ?$"
  153.         ;Zu ButtonWidth
  154.             "Wie breit sollen die Aktionsknöpfe sein (in Bildpunkten) ?$"
  155.         ;Zu ShowWarnings
  156.             "Sollen Warnungen ausgegeben werden ?$"
  157.         ;Zu PlayMusic
  158.             "Soll Musik im Hintergrund gespielt werden während der "
  159.             "Auswahl und der Vorschau ?$"
  160.         ;zu files in Prefs
  161.             "In Welchem Verzeichnis befinden sich die Musikmodule ? $"
  162.         ;zu MusicPath
  163.             "$"
  164.         ;Zu ShowPlayTime
  165.             "Soll die Abspieldauer der Musikmodule angezeigt werden ? "
  166.             "Es gibt einige Module wodurch mit dieser Option das System "
  167.             "hängen bleibt.$"
  168.         )
  169.         MSG_NOVIEWER "Wählen Sie ein geeignetes Programm aus, das Amigaguides anzeigen kann."
  170.         MSG_NOVIEWERABORT "%s konnte nicht gefunden werden"
  171.     )
  172. ))
  173.  
  174. ;
  175. ; global variables
  176. ;
  177. (set
  178.     GLB_MULTIVIEW "Sys:Utilities/MultiView"
  179.     GLB_AMIGAGUIDE "C:AmigaGuide"
  180.     GLB_OSVERSION 37
  181.     GLB_KICKVERSION "2.x"
  182.     GLB_DEFAULTDEST ""
  183.     GLB_ENVDIR "acone"
  184.     GLB_ENVVARS (cat
  185.         "new env StartUp "
  186.         "all arg StartControl bool JoyStick Mouse 0 "
  187.         "all arg ScanPath path "
  188.         "exp arg LastMsgDelay integer 4 "
  189.         "exp arg BorderSize integer 6 "
  190.         "exp arg HeightAdd integer 8 "
  191.         "exp arg ButtonWidth integer 120 "
  192.         "exp arg ShowWarnings bool Yes No 0 "
  193.         "use LIBS:destracker.library "
  194.         "all arg PlayMusic bool Yes No 1 "
  195.         "if! brk "
  196.         "new env Prefs "
  197.         "all noa files "
  198.         "add env StartUp "
  199.         "all arg MusicPath lastpath "
  200.         "all arg ShowPlayTime bool On Off 0 "
  201.     )
  202.     GLB_ENVS (cat
  203.         "env StartUp "
  204.         "env Prefs "
  205.     )
  206.     GLB_HELPDIRS ""
  207.     GLB_EXIT false
  208.     GLB_LASTPATH ""
  209.     GLB_ELEMENT ""
  210.     GLB_MESSAGE ""
  211.     GLB_ENV ""
  212.     GLB_HELPDIR ""
  213.     GLB_CFGFILE ""
  214.     GLB_ENVFILE ""
  215.     GLB_ENVARCFILE ""
  216.     GLB_ADDARG ""
  217.     GLB_RETARG ""
  218.     GLB_EMPTY ""
  219.     GLB_BOOL ""
  220. )
  221.  
  222. ;
  223. ; procedures
  224. ;
  225. (procedure setKickVersion (
  226.     (if (= osversion 31) (set kickversion "1.x"))
  227.     (if (= osversion 33) (set kickversion "1.2"))
  228.     (if (= osversion 34) (set kickversion "1.3"))
  229.     (if (= osversion 37) (set kickversion "2.x"))
  230.     (if (= osversion 38) (set kickversion "2.1"))
  231.     (if (= osversion 39) (set kickversion "3.x"))
  232.     (if (= osversion 40) (set kickversion "3.1"))
  233. ))
  234. (procedure checkOSVersion (
  235.     (set osversion (/ (getversion) 65536))
  236.     (setKickVersion)
  237.     (if (< osversion GLB_OSVERSION)
  238.         (abort (MSG_WRONGSYSVERSION @app-name GLB_KICKVERSION kickversion))
  239.     )
  240. ))
  241. (procedure installProgram (
  242.     (while (OR (= GLB_DEFAULTDEST "") (NOT (= (exists GLB_DEFAULTDEST (noreq)) 2))) (
  243.         (set GLB_DEFAULTDEST (askdir
  244.             (prompt (MSG_WHICHDEST @app-name))
  245.             (help (MSG_WHICHDESTHELP @app-name))
  246.             (default GLB_DEFAULTDEST)
  247.             (disk)
  248.         ))
  249.     ))
  250.     (if (> @user-level 0) (set GLB_DEFAULTDEST (tackon GLB_DEFAULTDEST @app-name)))
  251.     (set @default-dest GLB_DEFAULTDEST)
  252.     (makedir GLB_DEFAULTDEST (infos))
  253.     (copyfiles (
  254.         (source "")
  255.         (dest GLB_DEFAULTDEST)
  256.         (infos)
  257.         (all)
  258.     ))
  259.     (set GLB_WHICHWAY 1)
  260. ))
  261. (procedure getNextElement (
  262.     (set subcount 0)
  263.     (while (= (= (substr GLB_ENVVARS (+ counter subcount) 1) " ") false )
  264.         (set subcount (+ subcount 1))
  265.     )
  266.     (set GLB_ELEMENT (substr GLB_ENVVARS counter subcount))
  267.     (set counter (+ counter (+ subcount 1)))
  268. ))
  269. (procedure getNextMessage (
  270.     (set subcount 0)
  271.     (while (= (= (substr MSG_ENVVARS (+ msgcounter subcount) 1) "$") false )
  272.         (set subcount (+ subcount 1))
  273.     )
  274.     (set GLB_MESSAGE (substr MSG_ENVVARS msgcounter subcount))
  275.     (set msgcounter (+ msgcounter (+ subcount 1)))
  276. ))
  277. (procedure getNextEnv (
  278.     (set subcount 0)
  279.     (while (= (= (substr GLB_ENVS (+ envcounter subcount) 1) " ") false )
  280.         (set subcount (+ subcount 1))
  281.     )
  282.     (set GLB_ENV (substr GLB_ENVS envcounter subcount))
  283.     (set envcounter (+ envcounter (+ subcount 1)))
  284. ))
  285. (procedure getNextHelp (
  286.     (set subcount 0)
  287.     (while (= (= (substr GLB_HELPDIRS (+ hlpcounter subcount) 1) " ") false )
  288.         (set subcount (+ subcount 1))
  289.     )
  290.     (set GLB_HELPDIR (substr GLB_HELPDIRS hlpcounter subcount))
  291.     (set hlpcounter (+ hlpcounter (+ subcount 1)))
  292. ))
  293. (procedure wichConfig (
  294.     (getNextElement)
  295.     (if (= GLB_ELEMENT "env") (
  296.         (getNextElement)
  297.         (set
  298.             GLB_ENVFILE (tackon (tackon "ENV:" GLB_ENVDIR) (cat @app-name "." GLB_ELEMENT))
  299.             GLB_ENVARCFILE (tackon (tackon "ENVARC:" GLB_ENVDIR) (cat @app-name "." GLB_ELEMENT))
  300.             GLB_CFGFILE ""
  301.             GLB_ELEMENT ""
  302.         )
  303.     ))
  304.     (if (= GLB_ELEMENT "cfg") (
  305.         (getNextElement)
  306.         (set
  307.             GLB_ENVFILE ""
  308.             GLB_ENVARCFILE ""
  309.             GLB_CFGFILE (tackon GLB_DEFAULTDEST (cat @app-name "." GLB_ELEMENT))
  310.             GLB_ELEMENT ""
  311.         )
  312.     ))  
  313. ))
  314. (procedure wichEnvConfig (
  315.     (getNextEnv)
  316.     (if (= GLB_ENV "env") (
  317.         (getNextEnv)
  318.         (set
  319.             GLB_ENVFILE (tackon (tackon "ENV:" GLB_ENVDIR) (cat @app-name "." GLB_ENV))
  320.             GLB_ENVARCFILE (tackon (tackon "ENVARC:" GLB_ENVDIR) (cat @app-name "." GLB_ENV))
  321.             GLB_CFGFILE ""
  322.             GLB_ENV ""
  323.         )
  324.     ))
  325.     (if (= GLB_ENV "cfg") (
  326.         (getNextEnv)
  327.         (set
  328.             GLB_ENVFILE ""
  329.             GLB_ENVARCFILE ""
  330.             GLB_CFGFILE (tackon GLB_DEFAULTDEST (cat @app-name "." GLB_ENV))
  331.             GLB_ENV ""
  332.         )
  333.     ))  
  334. ))
  335. (procedure addToConfig (
  336.     (if (= GLB_ADDARG "")
  337.         (set operatestream "\" > ")
  338.         (set operatestream "\" >> ")
  339.     )
  340.     (if (= GLB_CFGFILE "") (
  341.         (run (cat "echo \"" GLB_ADDARG operatestream GLB_ENVFILE))
  342.         (run (cat "echo \"" GLB_ADDARG operatestream GLB_ENVARCFILE))
  343.     )(
  344.         (run (cat "echo \"" GLB_ADDARG operatestream GLB_CFGFILE))
  345.     ))
  346. ))
  347. (procedure getLastPath (
  348.     (set GLB_LASTPATH (askdir
  349.         (prompt GLB_MESSAGE)
  350.         (help GLB_MESSAGE)
  351.         (default GLB_LASTPATH)
  352.         (disk)
  353.     ))
  354. ))
  355. (procedure runOptions (
  356.     (getNextElement)
  357.     (if (= GLB_ELEMENT "lastpath") (set GLB_RETARG GLB_LASTPATH))
  358.     (if (= GLB_ELEMENT "path") (
  359.         (getLastPath)
  360.         (set GLB_RETARG GLB_LASTPATH)
  361.     ))
  362.     (if (= GLB_ELEMENT "files") (
  363.         (getLastPath)
  364.         (foreach GLB_LASTPATH "#?" (
  365.             (set GLB_ADDARG @each-name)
  366.             (addToConfig)
  367.         ))
  368.         (set GLB_ADDARG "")
  369.         (set GLB_RETARG "")
  370.     ))
  371.     (if (= GLB_ELEMENT "integer") (
  372.         (getNextElement)
  373.         (set GLB_RETARG (asknumber
  374.             (prompt GLB_MESSAGE)
  375.             (help GLB_MESSAGE)
  376.             (default GLB_ELEMENT)
  377.         ))
  378.     ))
  379.     (if (= GLB_ELEMENT "bool") (
  380.         (getNextElement)
  381.         (set bool_yes GLB_ELEMENT)
  382.         (getNextElement)
  383.         (set bool_no GLB_ELEMENT)
  384.         (getNextElement)
  385.         (set GLB_RETARG (askbool
  386.             (prompt GLB_MESSAGE)
  387.             (help GLB_MESSAGE)
  388.             (default GLB_ELEMENT)
  389.         ))
  390.         (if GLB_RETARG (
  391.             (set GLB_RETARG bool_yes)
  392.             (set GLB_BOOL true)
  393.         )(
  394.             (set GLB_RETARG bool_no)
  395.             (set GLB_BOOL false)
  396.         ))
  397.         (set GLB_ELEMENT "")
  398.     ))
  399. ))
  400. (procedure configProgram (
  401.     (set hld (tackon "ENV:" GLB_ENVDIR))
  402.     (if (= (exists hld) 0) (makedir hld))
  403.     (set hld (tackon "ENVARC:" GLB_ENVDIR))
  404.     (if (= (exists hld) 0) (makedir hld))
  405.     (set
  406.         counter 0
  407.         msgcounter 0
  408.         GLB_EXIT false
  409.     )
  410.     (while (= GLB_EXIT false) (
  411.         (getNextElement)
  412.         (if (= GLB_ELEMENT "new") (
  413.             (wichConfig)
  414.             (set GLB_ADDARG "")
  415.             (addToConfig)
  416.             (set GLB_ELEMENT "")
  417.         ))
  418.         (if (= GLB_ELEMENT "add") (
  419.             (wichConfig)
  420.             (set GLB_ELEMENT "")
  421.         ))
  422.         (if (= GLB_ELEMENT "use") (
  423.             (getNextElement)
  424.             (if (= (exists GLB_ELEMENT) false) (set GLB_EXIT true))
  425.             (set GLB_ELEMENT "")
  426.         ))
  427.         (if (= GLB_ELEMENT "if!") (
  428.             (if (= GLB_BOOL false) (set GLB_EXIT true))
  429.             (set GLB_ELEMENT "")
  430.         ))
  431.         (set gateisopen false)
  432.         (if (= GLB_ELEMENT "all") (
  433.             (set gateisopen true)
  434.             (getNextElement)
  435.             (getNextMessage)
  436.         ))
  437.         (if (= GLB_ELEMENT "exp") (
  438.             (if (= @user-level 2) (set gateisopen true))
  439.             (getNextElement)
  440.             (getNextMessage)
  441.         ))
  442.         (if gateisopen (
  443.             (if (= GLB_ELEMENT "arg") (
  444.                 (getNextElement)
  445.                 (set
  446.                     GLB_ADDARG (cat GLB_ELEMENT "=")
  447.                     GLB_ELEMENT ""
  448.                 )
  449.             ))
  450.             (if (= GLB_ELEMENT "noa") (
  451.                 (set
  452.                     GLB_ADDARG ""
  453.                     GLB_ELEMENT ""
  454.                 )
  455.             ))
  456.             (runOptions)
  457.             (set
  458.                 GLB_ADDARG (cat GLB_ADDARG GLB_RETARG)
  459.                 GLB_RETARG ""
  460.             )
  461.             (if (= (= GLB_ADDARG "") false) (addToConfig))
  462.         ))
  463.         (if (= counter (strlen GLB_ENVVARS)) (set GLB_EXIT true))
  464.     ))
  465.     (set GLB_WHICHWAY 3)
  466. ))
  467. (procedure deleteIfEmpty (
  468.     (set hld true)
  469.     (foreach GLB_EMPTY "#?" (set hld false))
  470.     (if hld (delete GLB_EMPTY))
  471. ))
  472. (procedure destallProgram (
  473.     (set
  474.         envcounter 0
  475.         GLB_EXIT false
  476.     )
  477.     (while (= GLB_EXIT false) (
  478.         (wichEnvConfig)
  479.         (delete GLB_CFGFILE)
  480.         (delete GLB_ENVFILE)
  481.         (delete GLB_ENVARCFILE)
  482.         (if (= envcounter (strlen GLB_ENVS)) (set GLB_EXIT true))
  483.     ))
  484.     (set GLB_EMPTY (tackon "ENV:" GLB_ENVDIR))
  485.     (deleteIfEmpty)
  486.     (set GLB_EMPTY (tackon "ENVARC:" GLB_ENVDIR))
  487.     (deleteIfEmpty)
  488.     (set GLB_WHICHWAY 3)
  489. ))
  490. (procedure selectWhichWay (
  491.     (set whichway   (askchoice
  492.             (prompt MSG_WICHWAY)
  493.             (help MSG_WICHWAYHELP)
  494.             (choices
  495.                 MSG_INSTALL
  496.                 MSG_CONFIG
  497.                 MSG_DESTALL
  498.                 MSG_QUIT
  499.             )
  500.             (default GLB_WHICHWAY)
  501.         )
  502.     )
  503.     (set selnum (+ selnum 1))
  504.     (if (= whichway 0) (installProgram))
  505.     (if (= whichway 1) (configProgram))
  506.     (if (= whichway 2) (destallProgram))
  507. ))
  508. (procedure modifyThings (
  509.     (if (AND (exists (tackon GLB_DEFAULTDEST (cat @app-name "000"))) (< (database "cpu") "68020")) (
  510.         (rename (tackon GLB_DEFAULTDEST @app-name) (tackon GLB_DEFAULTDEST (cat @app-name "020")))
  511.         (rename (tackon GLB_DEFAULTDEST (cat @app-name "000")) (tackon GLB_DEFAULTDEST @app-name))
  512.     ))
  513.     (if (AND (exists (tackon GLB_DEFAULTDEST (cat @app-name "020"))) (>= (database "cpu") "68020")) (
  514.         (rename (tackon GLB_DEFAULTDEST @app-name) (tackon GLB_DEFAULTDEST (cat @app-name "000")))
  515.         (rename (tackon GLB_DEFAULTDEST (cat @app-name "020")) (tackon GLB_DEFAULTDEST @app-name))
  516.     ))
  517.     (set GLB_HELPDIRS "")
  518.     (foreach "help" "#?" (
  519.         (if (> @each-type 0) (set GLB_HELPDIRS (cat GLB_HELPDIRS @each-name " ")))
  520.     ))
  521.     (set
  522.         hlpcounter 0
  523.         GLB_EXIT false
  524.     )
  525.     (if (< osversion 39)
  526.         (set viewer GLB_AMIGAGUIDE)
  527.         (set viewer GLB_MULTIVIEW)
  528.     )
  529.     (if (= (exists viewer) 0) (
  530.         (if (= @user-level 0) (abort (MSG_NOVIEWERABORT viewer)))
  531.         (while (OR (= viewer "") (NOT (= (exists viewer (noreq)) 1))) (
  532.             (set viewer (askfile
  533.                 (prompt (MSG_NOVIEWER viewer))
  534.                 (help (MSG_NOVIEWER viewer))
  535.                 (default viewer)
  536.             ))
  537.         ))
  538.     ))
  539.     (while (= GLB_EXIT false) (
  540.         (getNextHelp)
  541.         (foreach (tackon "help" GLB_HELPDIR) "~(#?.info)" (
  542.             (tooltype (
  543.                 (dest (tackon (tackon (tackon GLB_DEFAULTDEST "help") GLB_HELPDIR) @each-name))
  544.                 (setdefaulttool viewer)
  545.             ))
  546.         ))
  547.         (if (= hlpcounter (strlen GLB_HELPDIRS)) (set GLB_EXIT true))
  548.     ))
  549. ))
  550.  
  551.  
  552. ;
  553. ; main
  554. ;
  555. (set @default-dest "")
  556. (if (= @user-level 0)
  557.     (set GLB_WHICHWAY 1)
  558.     (set GLB_WHICHWAY 0)
  559. )
  560. (checkOSVersion)
  561. (set selnum 0)
  562. (while (< whichway 3)
  563.     (selectWhichWay)
  564. )
  565. (if (> selnum 1) (modifyThings))
  566.